Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

85
Vistas
cómo cambiar la propiedad de matriz anidada JSON "project_id" con "project_name"

Problema:

 [ { "project_id": 1, "project_name": "CDP", "role": "PL" }, { "project_id": 2, "project_name": "Admincer", "role": "PM" },

Quiero agregar la propiedad "project_id" de las tres propiedades anteriores a otra matriz usando algún método.

Mi idea es: 1. En primer lugar, si pudiera copiar la propiedad "project_id" de esta matriz en la segunda matriz JSON anidada, estaría bien.

Lo que busqué:

 const obj = { "project_id": 1, "project_name": "CDP", "role": "PL" };; const objCopy = { "start_time": "09:00:00", "end_time": "18:00:00", "rest_time": "01:00:00", "worked_time": "08:00:00", "is_wfh": true, "id": 1, 1, "work_day_id": 45, "time_cards": [ { ... obj } ] };; console.log (objCopy);

Descubrí que podía copiarlo de esta manera. Probé el código anterior en Chrome Console. Se copió la matriz, pero se copió todo el objeto. Solo quiero copiar las propiedades de project_id.

Quiero crear una nueva propiedad llamada "prj_name" en esta matriz y mostrar solo esa propiedad en Vuetify.

 async fetchWorkerTimeCard() { try { this.worker_data = [] await this.$axios.$get('/worker_time_card', { params: { work_date: this.calendarVal } }).then(data => { this.worker_data = data }) var projects = await this.fetch_worker_projects() console.log(projects) } catch (error) { console.log(error) this.worker_data = [] } },
 <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.5/vue.js"></script> <v-card> <v-data-table v-if="worker_data.time_cards" :headers="headers2" :items="worker_data.time_cards"></v-data-table> </v-card>

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Simplemente puede cambiar los datos de su objeto como cualquier otro objeto en JS.

 const obj = { "project_id": 1, "project_name": "CDP", "role": "PL" }; const objCopy = { "start_time": "09:00:00", "end_time": "18:00:00", "rest_time": "01:00:00", "worked_time": "08:00:00", "is_wfh": true, "id": 1, "work_day_id": 45 } console.log({...obj, ...objCopy})

Esto creará 1 objeto que se fusionó.

O si solo desea el valor project_id, simplemente cámbielo como:

 objCopy.project_id = obj.project_id
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si entiendo correctamente su primera pregunta, es posible que le interese la función de mapa , que le permite crear una nueva matriz a partir de una matriz existente. Entonces, por ejemplo, si el primer fragmento que publicaste es una matriz de objetos que llamamos projects , podrías usar: var projectIds = projects.map(p => p.project_id) , donde projectIds ahora sería una matriz de solo ID de proyecto .

Sin embargo, parece que podría estar preguntando más que esto, así que secundo la solicitud de Bravo de más aclaraciones/reorganización en su pregunta.

about 4 years ago · Juan Pablo Isaza Denunciar

0

No estoy muy seguro de si desea alguno de los siguientes resultados:

 { "start_time": "09:00:00", "end_time": "18:00:00", "rest_time": "01:00:00", "worked_time": "08:00:00", "is_wfh": true, "id": [ 1, 1 ], "work_day_id": 45, "time_cards": [ { "project_id": 1 }, { "project_id": 2 } ]

}

o esto

 { "start_time": "09:00:00", "end_time": "18:00:00", "rest_time": "01:00:00", "worked_time": "08:00:00", "is_wfh": true, "id": [ 1, 1 ], "work_day_id": 45, "time_cards": [ "project_id": [1, 2] }

En caso de que necesite el primer escenario, el siguiente código puede ayudarlo:

 // This function return an array with: [{project_id: Number}] function onlyIds(obj) { const ids = []; // Iterate the obj Array obj.forEach(element => { // Push a new JSON: "{project_id: 1}" or whatever ids.push({ project_id: element.project_id }); }); // return an array that only contains the project_id return ids; } const obj = [ { project_id: 1, project_name: 'CDP', role: 'PL', }, { project_id: 2, project_name: 'Admincer', role: 'PM', }, ]; const objCopy = { start_time: '09:00:00', end_time: '18:00:00', rest_time: '01:00:00', worked_time: '08:00:00', is_wfh: true, id: [1, 1], work_day_id: 45, time_cards: onlyIds(obj), }; console.log(onlyIds(obj)); console.log(objCopy);

Estoy bastante seguro de que debería haber una forma más elegante/óptima (como usar cualquier tipo de función de orden superior que pueda faltar en este momento) pero, por lo que entendí, esto debería hacer el trabajo.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda